/*

* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     Smart-Shop开源商城系统/ Java商城-首选电商平台系统 请务必保留此注释头信息
* |     开源地址: https://gitee.com/ningbo-qishan/gruul-mall
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     可正常分享和学习源码,未经授权 不可商用！
* |     商业版中台购买/开源版商业授权 联系技术客服
* |     官网:  https://www.73app.cn/
* ------------------------------------------------------------------------
* ------------------------------------------------------------------------
* |     Copyright (c) 2016-2999 宁波启山智软科技有限公司
* |     版权所有 ,侵权必究！
* ------------------------------------------------------------------------

*/
package com.medusa.gruul.discount.api.entity;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.medusa.gruul.common.data.base.BaseEntity;
import com.baomidou.mybatisplus.annotation.TableField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * <p>
 * 优惠劵
 * </p>
 *
 * @author lcysike
 * @since 2019-12-09
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@TableName("t_coupon")
@ApiModel(value="Coupon对象", description="优惠劵")
public class Coupon extends BaseEntity {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 本店店铺id
     */
    @ApiModelProperty(value = "本店店铺id")
    @TableField("shop_id")
    private String shopId;

    /**
     * 优惠劵名称
     */
    @ApiModelProperty(value = "优惠劵名称")
    @TableField("name")
    private String name;

    /**
     * 有效类型： 0-固定时间  1-领劵立即生效
     */
    @ApiModelProperty(value = "有效类型： 0-固定时间  1-领劵立即生效")
    @TableField("effective_type")
    private Integer effectiveType;

    /**
     * 有效天数
     */
    @ApiModelProperty(value = "有效天数")
    @TableField("effective_days")
    private Integer effectiveDays;

    /**
     * 开始时间
     */
    @ApiModelProperty(value = "开始时间")
    @TableField("start_time")
    private Date startTime;

    /**
     * 结束时间
     */
    @ApiModelProperty(value = "结束时间")
    @TableField("end_time")
    private Date endTime;

    /**
     * 适用商品：  0-全部商品参与  1-指定商品参与  2-指定商品不参与
     */
    @ApiModelProperty(value = "适用商品：  0-全部商品参与  1-指定商品参与  2-指定商品不参与")
    @TableField("product_type")
    private Integer productType;

    /**
     * 优惠劵类型：  0-无门槛折扣劵  1-无门槛现金劵  2-满折劵  3-满减劵
     */
    @ApiModelProperty(value = "优惠劵类型：  0-无门槛折扣劵  1-无门槛现金劵  2-满折劵  3-满减劵")
    @TableField("coupon_type")
    private Integer couponType;

    /**
     * 优惠折扣（不能大于10）
     */
    @ApiModelProperty(value = "优惠折扣（不能大于10）")
    @TableField("discount")
    private BigDecimal discount;

    /**
     * 优惠金额
     */
    @ApiModelProperty(value = "优惠金额")
    @TableField("discount_amount")
    private BigDecimal discountAmount;

    /**
     * 满足条件金额
     */
    @ApiModelProperty(value = "满足条件金额")
    @TableField("condition_amount")
    private BigDecimal conditionAmount;

    /**
     * 发行数量
     */
    @ApiModelProperty(value = "发行数量")
    @TableField("issue_quantity")
    private Integer issueQuantity;

    /**
     * 限领(张/人)
     */
    @ApiModelProperty(value = "限领(张/人)")
    @TableField("limit_quantity")
    private Integer limitQuantity;

    /**
     * 优惠劵状态：  0-未开始  1-进行中  2-已结束
     */
    @ApiModelProperty(value = "优惠劵状态：  0-未开始  1-进行中  2-已结束")
    @TableField("status")
    private Integer status;

    /**
     * 赠送类型：  0-全民活动  1-赠予客户
     */
    @ApiModelProperty(value = "赠送类型：  0-全民活动  1-赠予客户  2-积分优惠劵")
    @TableField("give_type")
    private Integer giveType;

    /**
     * 所需积分
     */
    @ApiModelProperty(value = "所需积分")
    @TableField("integral")
    private Integer integral;

    @ApiModelProperty(value = "配置规则  0未参与回收返券  1参与")
    @TableField("recycle_activity")
    private Integer recycleActivity;

    @ApiModelProperty(value = "回收反券图片")
    @TableField("recycle_img")
    private String recycleImg;

}
